#include <iostrean>
#include <cstdio>
#include <map>
#include <vector>
using namespace std;
typedef long long ll;
int p = 0;
int mp[500], t = 0, a, k;
map<int, vector<int>> tu;
struct book
{
    int now;
    int l, r;
};
map<int, book> bt;
int build(int q)
{
    int f = p++;
    if (f >= t)
    {
        return 0;
    }
    // cout << mp[f] << endl;
    if (mp[f] == 0)
    {
        return 0;
    }
    bt[mp[f]].now = mp[f];
    tu[q].push_back(mp[f]);
    bt[mp[f]].l = build(q + 1);
    bt[mp[f]].r = build(q + 1);
    return mp[f];
}
// void dfs(int x)
// {
//     if (!x)
//     {
//         return;
//     }
//     dfs(bt[x].l);
//     dfs(bt[x].r);
// }
int main()
{
    char h;
    string s = "";
    while (1)
    {
        h = getchar();
        if (h == '\n')
        {
            mp[t++] = stoi(s);
            break;
        }
        if (h == ' ')
        {
            mp[t++] = stoi(s);
            s = "";
        }
        else
        {
            s += h;
        }
    }
    cin >> k;
    build(0);
    // dfs(1);
    // for (auto it = tu.begin(); it != tu.end(); it++)
    // {
    //     cout << it->first << endl;
    //     for (int i = 0; i < it->second.size(); i++)
    //     {
    //         cout << it->second[i] << " ";
    //     }
    //     cout << endl;
    // }
    if (tu[k].empty())
    {
        cout << "0";
        return 0;
    }
    cout << *tu[k].rbegin();
    return 0;
}